package com.cy.features;

import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;

public class LIstGenericTest01 {
    public static void main(String[] args) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
        ArrayList<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        //因为泛型约束，我们不能再编译时讲100这个整数存入list集合
        //list.add(100);
        //借助反射实现将100存入集合
        //1 获取反射应用起点对象(class)
        Class<?> cla=list.getClass();
        //2 获取ArrayList类中的add方法对象
        Method method=cla.getDeclaredMethod("add", Object.class);
        //3 反射调用add方法 讲100添加到集合
        method.invoke(list, 100);//调用list对象的add方法，传入实际参数100
        System.out.println(list);
    }
}
